package com.doitedu.day04.funcs

/**
 * @Date 22.6.23
 * @Created by HANGGE
 * @Description
 */
object _12Aggravate {
  def main(args: Array[String]): Unit = {

    val ls = Array[Int](1,2,3,4,5,6)
    // 默认情况下一个数据 怎么处理  一个线程

    /**
     * 柯里化的方法 方法有两个参数类型列表
     * 参数类型列表 1   默认  和fold方法一样
     * 参数类型列表 2
     *          函数1 : 局部计算逻辑  _+_
     *          函数2 : 全局计算逻辑 _*_  由于本地集合没有并行计算 一个线程计算 不需要全局计算逻辑
     */
    val res = ls.aggregate(10)(_ + _, _ * _)
    println(res)

    // 将集合并行化处理   使用当前机器的所有的可用资源计算
    // 当前机器  16 核
    val arr = ls.par

    println(arr.aggregate(10)(_ + _, _ + _))


  }

}
